草庐IT

PHPUnit 和 CodeIgniter

全部标签

php - 在 PHPUnit 中如何强制 tearDownAfterClass() 在意外异常的情况下运行

因此,每次我在PHPUnit中遇到意外异常(例如由于完整性检查而无法插入数据库)时,我的测试都会失败,并且它会在不运行tearDownAfterClass()函数的情况下出错。这将使我的数据库处于困惑状态,因此我必须手动清理它。有没有办法确保始终执行tearDownAfterClass()? 最佳答案 PHPUnit将调用tearDownAfterClass,即使在测试方法中存在错误和失败时也是如此。当setUpBeforeClass抛出异常时,它不会调用它。为了确保您的数据库得到清理,将清理代码移动到您从tearDownAfter

php - 使用 PHPUnit 测试 error_log

我有这个功能,我想像这样测试:classLogger{functionerror($msg){if(is_string($msg)){error_log($msg);die($msg);}elseif(is_object($msg)){error_log($msg.''.$msg->getTraceAsString());die('exception');}else{var_dump($msg);die('error');}}我想在不记录$msg的情况下测试这个函数。有没有办法确定error_log是否在没有日志记录的情况下工作?我尝试使用setExpectedException但我无

php - 在 PHPUnit 中测试具有依赖关系的对象

对于在实现过程中组成另一个对象的对象,编写单元测试以便只测试主要对象的最佳方法是什么?简单的例子:classmyObj{publicfunctiondoSomethingWhichIsLogged(){//...$logger=newlogger('/tmp/log.txt');$logger->info('somemessage');//...}}我知道可以设计该对象,以便可以注入(inject)记录器对象依赖项,从而在单元测试中对其进行模拟,但情况并非总是如此——在更复杂的场景中,您确实需要组合其他对象或进行调用到静态方法。由于我们不想测试记录器对象,而只想测试myObj,我们该如

php - 如何使用 codeigniter 使 zend studio 自动完成

我正在寻找一种好方法来为在ZendStudioforEclipse中工作的codeigniter中的库获取自动完成和点击引用(无论叫什么)。例如,如果我这样做$this->load->library('dx_auth');$this->dx_auth->get_user_id();zendstudio不知道它是什么..有这种hacky方法(见下文,source),但我觉得应该有更好的方法..有人有什么想法吗?//AlloftheseareaddedsoIgetrealautocomplete//Idon'thavetoworryaboutitcausinganyproblemswith

php - codeigniter 中的 Css/图像/javascript

关于this发布,我想将css、图像和js添加到我的codeigniter应用程序中。我的问题是在您将路径添加到头文件之后href="css/moorainbow.css",你实际上把你的文件放在哪里,是在系统、应用程序、View还是Controller中?到目前为止,我发现大约有10篇文章解释了相同的过程,但没有人在谈论实际文件应该保存在哪里?有人可以帮我吗?谢谢 最佳答案 好的,试试两个。这是Codeigniter的答案(而不是CakePHP...抱歉!)将任何公共(public)文件放在根目录中(与主index.php相同的目

php - 登录后其他页面中的 Codeigniter session 数据不可用

因此,我设置了一个登录页面来验证用户的凭据,然后设置codeignitersession数据“email”和“is_logged_in”以及其他一些项目。登录后的第一个页面,可以访问数据。在该页面之后,我无法再访问session数据。事实上,如果我尝试重新加载第一页,session数据就会消失。我试过将其存储在数据库中,未加密存储(我知道这是个坏主意,但这是为了排除故障),然后加密存储。我已经在config.php中自动加载了session库。这是我用来设置session数据的代码示例:$data=array('email'=>$this->input->post('username'

php - Codeigniter (CSRF) jQuery ajax 问题

我这里有一个问题,当我尝试使用ajax(POST)发布内容时,我总是收到错误消息。我知道是CSRF给我带来了这些问题,我反复尝试寻找解决方案。但是,我希望这里有人可以帮助我!这是我不断收到的错误(来自googlechromeinspector),*无法加载资源:服务器响应状态为500(内部服务器错误)XHR完成加载:“http://localhost/woho/ajax/images”。*PHP(Controller)classAjaxextendsCI_Controller{functionimages(){echo'HelloWorld';}}JavascriptvarID=$("

PHPUnit:在 <ClassNameTest>.php 中找不到类 <ClassName>

我已经无计可施了。我一定已经阅读了关于同一主题的所有SO问题,但没有任何乐趣。我无法让phpUnit正常工作。我已经使用PEAR成功安装了phpUnit及其依赖项。我还修改了php.ini文件并将phpUnit的路径添加到包含路径:(".:/php/includes:usr/lib/php/pear")。为了测试phpunit是否正常工作,我复制了这个简单的类,所以MyClassTest.php如下所示:classMyClassTestextendsPHPUnit_Framework_TestCase{publicfunctiontestCalculate(){$this->asser

php - 如何使用 XHProf 从命令行分析 PHPUnit 测试?

我有一些非常慢的PHPUnit测试(43次测试需要8分钟),我需要使用XHProf来找出问题所在。如何从命令行执行此操作?我在项目的/vendor目录中有PHPUnit,通过composer加载。 最佳答案 要找出哪些测试运行缓慢,您可以使用https://github.com/johnkary/phpunit-speedtrap通过Composer安装监听器,然后在您的phpunit.xml中启用它,例如...要找出测试运行缓慢的原因,您可以使用https://github.com/sebastianbergmann/phpuni

php - 在 codeigniter 中命名 Controller 和模型的最佳方式

我正在尝试使用codeigniter制作一些基本的网络应用程序,我已经意识到我有很多元素调用Controller方法,这些方法从相应的模型中获取数据,我正在尝试找出命名这些方法的最佳方式这几乎做同样的事情。举个例子,假设我想捕获我网站上的所有用户。我会在我的Controller中有一个名为get_users()的方法,然后该方法将在我的模型中加载并调用一个名为fetch_users()的方法,该方法将从数据库中获取用户并将result_array返回到Controller,然后从那里返回到看法。这似乎有点多余(调用get_users()又调用了另一个名为fetch_users()的函数